#include "pch.hpp"
#include "Daemon.hpp"

using namespace Engine;
using namespace Engine::Debugger;




Daemon::Daemon(MessageReader::ptr reader, MessageWriter::ptr writer)
	: m_reader(reader)
	, m_writer(writer)
{}
///////////////////////////////////////////////////////////////////////////////////////////////////

void Daemon::post_create(ptr _this)
{}
///////////////////////////////////////////////////////////////////////////////////////////////////

Daemon::~Daemon()
{}
///////////////////////////////////////////////////////////////////////////////////////////////////




Command::ptr Daemon::command()
{
	Message::ptr message;
	*m_reader >> message;

	if(message && boost::shared_dynamic_cast<Command>(message))
		return boost::shared_static_cast<Command>(message);
	else
		return Command::ptr();
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void Daemon::lineCallback(const Script::Context::ptr& context)
{
	auto callstack = context->callstack();
	std::vector<std::vector<Script::Variable>> variables;
	variables.reserve(callstack.size());

	for(std::size_t i = 0; i < callstack.size(); ++i)
	{
		variables.push_back(context->variables(i));
	}

	int n = 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
